/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package BD;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList;
import javax.swing.JOptionPane;

/**
 *
 * @author CORE
 */
public class Caixa_relatorio extends bd {
//id_caixa_iten, id_caixa, id_pedido, valor, data, meiopagamento
private float valor         =0;  
private Timestamp dtabertura       ;
private Timestamp dtfechamento     ;
private String tipopgto = "";       
private int  qtd  ;
private float saldo_inicial = 0;
private float total = 0;
private float total_geral = 0;

    public float getTotal_geral() {
        return total_geral;
    }

    public void setTotal_geral(float total_geral) {
        this.total_geral = total_geral;
    }

    public float getTotal() {
        return total;
    }

    public void setTotal(float total) {
        this.total = total;
    }

    public float getSaldo_inicial() {
        return saldo_inicial;
    }

    public void setSaldo_inicial(float saldo_inicial) {
        this.saldo_inicial = saldo_inicial;
    }

    public float getValor() {
        return valor;
    }

    public void setValor(float valor) {
        this.valor = valor;
    }

    public Timestamp getDtabertura() {
        return dtabertura;
    }

    public void setDtabertura(Timestamp dtabertura) {
        this.dtabertura = dtabertura;
    }

    public Timestamp getDtfechamento() {
        return dtfechamento;
    }

    public void setDtfechamento(Timestamp dtfechamento) {
        this.dtfechamento = dtfechamento;
    }

    public String getTipopgto() {
        return tipopgto;
    }

    public void setTipopgto(String tipopgto) {
        this.tipopgto = tipopgto;
    }

    public int getQtd() {
        return qtd;
    }

    public void setQtd(int qtd) {
        this.qtd = qtd;
    }


    public ResultSet consultar() {
        if (!estaConectado()) {
            conecta();
        }
        try {
            stmt = getConexao().createStatement();
            sql =   
"    select caixa_iten.tipopgto,sum(caixa_iten.valor) as valor ,"+
"    (select count(*) from caixa_iten where caixa_iten.id_caixa = (select max(id_caixa) from caixa) ) as qtd,"+
"    (select sum(valor) from caixa_iten where caixa_iten.id_caixa = (select max(id_caixa) from caixa) ) as total,"+
//"    ((coalesce(select sum(valor) from caixa_iten where caixa_iten.id_caixa = (select max(id_caixa) from caixa),0 ))+ "+
//"    (coalesce(select caixa.saldo_inicial from caixa where caixa.id_caixa = (select max(id_caixa) from caixa) ,0))) as total_geral, "+
"    (((select coalesce(sum(valor),0) from caixa_iten where caixa_iten.id_caixa = (select max(id_caixa) from caixa)))+ "+
"    ((select coalesce(caixa.saldo_inicial,0) as saldo_inicial from caixa where caixa.id_caixa = (select max(id_caixa) from caixa) ))) as total_geral, "+
"    (select caixa.dtabertura from caixa where caixa.id_caixa = (select max(id_caixa) from caixa) ),  "+
"    (select caixa.saldo_inicial from caixa where caixa.id_caixa = (select max(id_caixa) from caixa) ),  "+
"    (select caixa.dtfechamento from caixa where caixa.id_caixa = (select max(id_caixa) from caixa) )"+
"    from caixa"+
"    left join caixa_iten on (caixa.id_caixa=caixa_iten.id_caixa)"+
"    where caixa.id_caixa =(select max(id_caixa) from caixa)"+
"    group by caixa_iten.tipopgto ";
            
            rs = stmt.executeQuery(sql);
            return rs;
            
        } catch (SQLException objErro) {
            JOptionPane.showMessageDialog(null, "Não foi possível executar a Query relatorio fechamento caixa\n" + objErro.getMessage());
            return null;
        }
        
    }
    public ArrayList<Caixa_relatorio> getItens(){
        ArrayList itens = new ArrayList();
        rs = this.consultar();
        try{//id_caixa_iten, id_caixa, id_pedido, valor, data, tipopgto
            while(rs.next()){
                Caixa_relatorio obj  = new Caixa_relatorio();
                obj.setDtabertura(rs.getTimestamp("dtabertura"));
                obj.setDtfechamento(rs.getTimestamp("dtfechamento"));
                obj.setQtd(rs.getInt("qtd"));
                obj.setTipopgto(rs.getString("tipopgto"));
                obj.setValor(rs.getFloat("valor"));                
                obj.setTotal(rs.getFloat("total"));                
                obj.setTotal_geral(rs.getFloat("total_geral"));                
                obj.setSaldo_inicial(rs.getFloat("saldo_inicial"));
                itens.add(obj);               
            }
            stmt.close();
            
            disconecta();
        }
        catch(SQLException erro){
            msgErro = erro.getMessage();            
            JOptionPane.showMessageDialog(null, erro.getMessage());
        }        
        return itens;
    }
}    
    





